import matplotlib.pyplot as plt
import cv2 as cv
import os
from skimage import io
out_path = "E:/Course documents/pattern recogition/liudehua/"
if not os.path.exists(out_path):
    os.mkdir(out_path)
for f in os.listdir():
    img = cv.imread(f)
    # img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
    # img_gray = cv.equalizeHist(img_gray) 
    # 1. 创建级联分类器
    face_cascade = cv.CascadeClassifier()
    # 2. 引入训练好的可用于人脸识别的级联分类器模型
    face_cascade.load("E:/haarcascade_frontalface_alt.xml")
    # 3. 用此级联分类器识别图像中的所有人脸信息，返回一个包含有所有识别的人联系系的列表
    # 列表中每一个元素包含四个值：面部左上角的坐标(x,y) 以及面部的宽和高(w,h)
    faces = face_cascade.detectMultiScale(img)
    faces_list = len(list(faces))
    # 4. 为图像中的所有面部画框
    if faces_list != 0:
        for (x, y, w, h) in faces:
            cv.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)
        img_faces = img[y:y+h,x:x+w]

    if faces_list == 0:
        continue
    file_name = out_path+f+".jpg"
    io.imsave(file_name, cv.cvtColor(img_faces, cv.COLOR_BGR2RGB))  # 输出生成图像
